home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 31 / Amiga Format CD31 (1998-09-02)(Future Publishing)(GB)(Track 1 of 2)[!][issue 1998-10].iso / -seriously_amiga- / misc / fblit / fblitgui192.doc < prev    next >
Text File  |  1998-07-16  |  14KB  |  427 lines

  1.  
  2. FBlitGUI 1.92
  3. -------------
  4. 'FBlitGUI' is © Stephen Brookes 1997-98
  5.  
  6.  
  7.  
  8. It Ain't My Fault!
  9. ------------------
  10. This software offers many ways for you to corrupt data on, crash and
  11. generally do harm to your computer system! Don't even think about executing
  12. this! I will not accept responsibility for any unwelcome effects
  13. attributable to the use or abuse of any information or software in this
  14. archive.
  15.  
  16.  
  17.  
  18. Distribution
  19. ------------
  20. 'FBlitGUI' is freely distributable. (why?)
  21.  
  22.  
  23.  
  24. Required
  25. --------
  26. FBlit v2.43->2.45
  27. MUI ?.?
  28.  
  29.  
  30.  
  31. Installation
  32. ------------
  33. Install in the same directory as the 'FBlit' executable.
  34.  
  35.  
  36.  
  37. Usage
  38. -----
  39. Launch 'FBlit' twice to access the GUI.
  40.  
  41.  
  42.  
  43. That's Interesting
  44. ------------------
  45. FBlitGUI (fbg) is not really a user interface for fblit, and there has been
  46. some debate wether or not to include it in this archive. It is a
  47. development and debug tool for me, but it can provide usefull options and
  48. information for anyone mad enough to touch it, so it is here.
  49.  
  50. Being a dev tool, many pointless options and stats are available, and the
  51. majority of them have the capacity to corrupt and crash your system! I am
  52. NOT jokeing about this! Careless use of this software could easily cost you
  53. the contents of your hard drive!
  54.  
  55.  
  56.  
  57. Basically
  58. ---------
  59. FBG presents an interface rather similar to 'standard' MUI prefs programmes,
  60. in style at least. This is rather missleading, there are some important
  61. differences!
  62.  
  63. Almost all of fbg operates in 'real-time'. Changes you make will be applied
  64. immediately, not through a 'test' gadget as in many prefs.
  65.  
  66. The 'quit' gadget refers to FBlit itself, not fbg, and you are advised never
  67. to use it.
  68.  
  69. 'use', 'save' and 'cancel' function as you might expect.
  70.  
  71. There is no menu, and no easy way of loading or restoring default prefs.
  72. The default can be restored by deleting 'envarc:fblit.cfg' and reseting
  73. your system.
  74.  
  75. Hopefully, every gadget has bubble help, and all those that carry
  76. significant risk of corrupting your system should have the word 'dangerous'
  77. in it's bubble. In most(all?) cases, the corruption risk is only present if
  78. there is actually any relevent data in fast mem at the time.
  79.  
  80. FBlit consists of several patches. Some are functional, some only there for
  81. development reasons. Each has a page in fbg. You must NOT use FBlits and
  82. FBlitGUIs from separate archives!
  83.  
  84.  
  85.  
  86. Chip & Fast Data
  87. ----------------
  88. Several patches offer options relating to the location of relevent data and
  89. in all cases an option exists to 'pass on' data to the original patched
  90. function.
  91.  
  92. The original OS functions generally cannot handle data in fast mem, and
  93. will corrupt your system if presented with such data, so it is not
  94. advisable to set any fast data option to 'pass on' if there is any
  95. possibility of such data actually turning up.
  96.  
  97. Note that 'fast' in here generally refers to any non-chip memory.
  98.  
  99.  
  100.  
  101. Patch Installation
  102. ------------------
  103. The 'Installed' and 'Activated' gadgets are present for all patches. The
  104. activation gadget is there so that a patch can effectively be disabled even
  105. when it cannot be un-installed (due to being over-patched). Both may be
  106. dangerous.
  107.  
  108.  
  109.  
  110. Stats
  111. -----
  112. The meaning of stats is not documented and may not be quite as indicated by
  113. the labels. Treat them with caution!
  114.  
  115. The stats do not update in real-time, since to do so could cause feedback
  116. loops. They are updated via the 'update' gadget, but take into account that
  117. the act of rendering the gadget, and text, may alter the values in itself.
  118.  
  119.  
  120.  
  121. FBlit Page
  122. ----------
  123. The guilty party, and some associates.
  124.  
  125.  
  126.  
  127. FBltBitMap Page
  128. ---------------
  129. FBltBitMap is a fully functional BltBitMap patch. It can perform any
  130. 'standard' function of the original in chip or fast mem.
  131.  
  132. It will also have a fit if presented with any non-standard bitmap
  133. structures! This appears to be the most common cause of trouble with fblit.
  134.  
  135. Note that non-data (0, -1) planes are largely exempt from any settings.
  136. They are dealt with separately before any other considerations unless 'pass
  137. on' is selected.
  138.  
  139.   Chip Options
  140.   ------------
  141.   Relating to any call with all planes of both bitmaps in chip mem. Set any
  142.   way you like, for speed/multi-tasking-ability (FBBM never uses the
  143.   blitter itself)
  144.  
  145.     Pass On
  146.     -------
  147.     All operations are passed on to the original function.
  148.  
  149.     Process
  150.     -------
  151.     All operations are processed.
  152.  
  153.     Pass On Complex
  154.     ---------------
  155.     Operations that involve reading both source and destination will be
  156.     passed on, all others will be processed. This is probably the best
  157.     option. FBBM is significantly faster than the original on simple
  158.     operations but there is little to choose between them with complex
  159.     operations on here. In any event, all non-data planes are processed.
  160.  
  161.   Chip Copy Processing
  162.   --------------------
  163.   This relates to any copy or copy&invert call where the destination bitmap
  164.   planes are in chip. Set this how you like, trade-off speed and visual
  165.   disturbance.
  166.  
  167.     Always Pretty
  168.     -------------
  169.     All planes will be rendered simultaneously, one full raster line at a
  170.     time.
  171.  
  172.     Avoid Flicker
  173.     -------------
  174.     All planes will be rendered simultaneously, but the render may be
  175.     split.
  176.  
  177.     Never Pretty
  178.     ------------
  179.     Planes are rendered sequentially, and may be split.
  180.  
  181.   Fast Data Options
  182.   -----------------
  183.   Applies to any call with any plane outside chip mem.
  184.  
  185.     Pass On
  186.     -------
  187.     The call is passed on to the original function. Often a bad idea.
  188.  
  189.     Process
  190.     -------
  191.     FBBM will process the call. Good stuff.
  192.  
  193.     Discard
  194.     -------
  195.     The call is ignored.
  196.  
  197.  
  198.  
  199. FBltClear
  200. ---------
  201. This is another functional patch, but it's not clear that there is any
  202. advantage in it, other than stopping fast calls reaching the OS though I
  203. can't ever remember seeing a fast call anyway...
  204.  
  205.   Chip Data Options
  206.   -----------------
  207.  
  208.     Pass On ASynch
  209.     --------------
  210.     Operations that the calling programme is not going to wait for will be
  211.     passed on to be done by the blitter, all other calls will be processed.
  212.  
  213. see FBltBitMap for function of other options.
  214.  
  215.  
  216.  
  217. FBltTemplate
  218. ------------
  219. This is just a dev patch. It's only function is to stop fast calls reaching
  220. the OS and corrupting the system, and to show if any occur. Options as for
  221. FBltBitMap.
  222.  
  223.  
  224.  
  225. FBltPattern
  226. -----------
  227. Another largely non-functional patch. It's mainly here to block fast calls,
  228. but, if set to 'process', it will do operations of one particular type.
  229. Namely, calls where drawing mode is JAM2 and no area pattern or mask are
  230. specified. In practice this call draws a filled rectangle and it's not
  231. apparent why it gets used for this, it may be the OS. For the one function
  232. that can be processed it simply calls BltBitMap, so FBltBitMap settings may
  233. effect this one too. All other fast data calls are discarded when in
  234. 'process' mode.
  235.  
  236.  
  237.  
  238. FBitMapScale
  239. ------------
  240. This is fully functional, but doesn't get much exercise so it's not known
  241. how bomb proof it is. Note that the output of this function is never likely
  242. to be identical to that generated by the original, and it may also call
  243. BltBitMap. Options are pretty standard by now.
  244.  
  245.  
  246.  
  247. FAllocMem
  248. ---------
  249. This is an integral part of FAllocBitMap. It has no function other than
  250. servicing calls from FABM. Don't install or remove them individually.
  251.  
  252.  
  253.  
  254. FAllocBitMap
  255. ------------
  256. This is the one responsible for forceing other software to allocate bitmaps
  257. with planes in fast mem (here I really do mean #MEMF_FAST). It maintains a
  258. list of tasks to be effected, either by inclusion or exclusion, in the
  259. promotion process. Only calls that do NOT specify #BMF_DISPLAYABLE will be
  260. effected. It's a somewhat rough process and there are probably many
  261. possible sources of trouble in here. Also note that this does not
  262. multitask. Only one calling task may be effected at a time, any other
  263. callers will have to wait their turn.
  264.  
  265. This patch, and FAllocMem, can fairly safely be removed, installed etc.
  266.  
  267.   Config Page
  268.   -----------
  269.  
  270.     Task Logging
  271.     ------------
  272.     The names of tasks that make an applicable call to Allocbitmap may be
  273.     logged for user selection. This is not exactly efficient and should be
  274.     disabled when not needed.
  275.  
  276.     Task List Options
  277.     -----------------
  278.  
  279.       Include
  280.       -------
  281.       Tasks listed on the include list will be effected.
  282.  
  283.       Exclude
  284.       -------
  285.       All tasks except those listed on the exclude list will be effected.
  286.  
  287.   Lists Page
  288.   ----------
  289.   This part of the GUI does NOT operate in real time. Changes made here
  290.   will only take effect on exiting the GUI via 'use' or 'save'. Note that
  291.   task names are case sensitive.
  292.  
  293.     Include List
  294.     ------------
  295.  
  296.       Add
  297.       ---
  298.       Enter the name of a task to be added to the list here. Or select the
  299.       pop gadget and choose from the logged task list. Note that the pop
  300.       list is fixed at fbg run time. To update it you must cancel the GUI
  301.       and restart.
  302.  
  303.       Remove
  304.       ------
  305.       Delete a task from the list. Ho hum.
  306.  
  307.     Exclude List
  308.     ------------
  309.     see 'Include List'
  310.  
  311.  
  312.  
  313. FSetRast
  314. --------
  315. This may or may not be fully functional/compatible with SetRast. The usual
  316. options apply. It will only deal with fast data by default, though I have
  317. been running it in chip also without any apparent problems. It is
  318. implemented by calling BltBitMapRastPort, hence FBltBitMap...
  319.  
  320.  
  321.  
  322. Hmmmm
  323. -----
  324. FBlit's default is to have everything turned on, and several programmes
  325. promoted to fast mem, but you can set it up in different, limited, ways.
  326.  
  327. You can un-install all the patches except 'FAllocMem' and 'FAllocBitmap' to
  328. get a more restricted version of MCP's memory patch. (so what)
  329.  
  330. If you un-install everything except 'FBltBitMap', and set it to 'pass on'
  331. fast data, you will have a slightly souped up CPUBlit. It will probably not
  332. be quite as fast at the few operations that CPUBlit actually does, but it
  333. is rather more wide ranging. Set up like this, it will also tend to work on
  334. systems where the full setup causes trouble.
  335.  
  336. Doing anything like that obviously removes the possibility of running stuff
  337. in fast mem on a standard amiga.
  338.  
  339.  
  340.  
  341. Promoting Stuff
  342. ---------------
  343.  
  344. *** UPDATE ***
  345. Promoting the 'multiview' task itself eventually proved unsafe. Most of the
  346. time it appears normal, but depth sorting a multiview window can cause
  347. trouble! The same may be true of IPrefs, if it is ever responsible for a
  348. window (error requester?) 'AsyncLayoutDaemon' still appears to be 100% ok,
  349. and is now included by default.
  350. **************
  351.  
  352. I really didn't want to get involved with 'retro-fitting' the use of fast
  353. mem, but it was unavoidable of course.
  354.  
  355. Any software that offers an 'RTG' switch stands some chance of working with
  356. fblit on a standard amiga, but such software is rather scarce. (stuff
  357. designed to run under cgfx etc. will probably not work)
  358.  
  359. In theory, all you have to do to force a programme to use fast mem for
  360. non-displayable bitmaps, is to add it's task name to the FAllocBitMap task
  361. list, but it is not likely to work in practice.
  362.  
  363. The vast majority of software cannot be forced into fast mem for many
  364. reasons, and in any case, a lot of software wouldn't benefit much from it.
  365.  
  366. For a start, there are probably many more OS functions using the blitter.
  367. If the programme uses any of these, it cannot be promoted. Any task that
  368. runs a GUI is quite likely to fall under this.
  369.  
  370. The tasks that are promoted by default are ones that do not (AFAICT)
  371. generate a GUI. IPrefs is only responsible for allocating the source
  372. bitmaps for wbpatterns. The browsers all spawn a separate task to deal with
  373. images, and it is these tasks that are promoted, not the browsers main
  374. task.
  375.  
  376. There will be more programmes that can be usefully promoted, but I haven't
  377. looked arround much.
  378.  
  379. Multiview is one I have tried, and it illustrates some of the problems. I
  380. won't guarantee success with it, and this is only of use if you use
  381. mutiview to display images or anims in a window, but this is how to go
  382. about adding it to the list...
  383.  
  384. Bring up the GUI, enable task logging on the FAllocBitMap page and exit the
  385. GUI via 'use'.
  386.  
  387. Now launch multiview from its wb icon (not cli!) and view a picture (a
  388. large jpg) in a window, on a nice deep screen. Scroll about the image a bit,
  389. and note your Chip mem.
  390.  
  391. Bring back the GUI and go to the FAllocBitMap/Lists/IncludeList page. Pick
  392. the poplist gadget and look at the list. You should see the names
  393. 'AsyncLayoutDaemon' and 'MultiView'.
  394.  
  395. Pick the 'Async..blah' one to add it to the list, and exit the GUI again
  396. via 'use'.
  397.  
  398. Now launch multiview again, as before. Same picture. Scrolling it this
  399. time, you may notice it is much faster. You also should be using less chip
  400. mem.
  401.  
  402. Isn't that nice. Hmmm. Well, it still uses loads of chip mem though, so how
  403. about adding the 'MultiView' task to the list as well. What happens if you
  404. do, will depend...
  405.  
  406. While I was running MUIASL, promoting 'MultiView' would cause corruption
  407. whenever the MUI file requester appeared. I'm back on default ASL now, and
  408. it seems to be stable with multiview promoted, but I have found out before
  409. that something can appear stable for weeks, and then all hell breaks loose
  410. at some time when you have loads of screens open etc. so no promises.
  411.  
  412. Now, if I view a jpg in a window on here, with 'MultiView' and
  413. 'AsyncLayoutDaemon' promoted, it uses virtually no chip mem at all, but IFF
  414. and GIF still use plenty...
  415.  
  416. If you try this, you will run into yet another problem. The task name of
  417. multiview is not constant. I specified running it from its wb icon. If you
  418. use a cli the task name will be whatever the command you typed was, so it
  419. could be 'sys:utilities/multiview' or maybe 'multiview' etc. which will not
  420. get promoted unless you also add those task names to the list.
  421.  
  422.  
  423.  
  424. Enough Already
  425. --------------
  426. see FBlit.doc for contact etc.
  427.